﻿using System;
using MySql.Data.MySqlClient;

namespace l1cs.server.datatables
{
    public class LetterTable
    {
        private static Logger _log = Logger.getLogger( typeof( LetterTable ).FullName );

        public LetterTable() { }

        // テンプレートID一覧
        // 16:キャラクターが存在しない
        // 32:荷物が多すぎる
        // 48:血盟が存在しない
        // 64:※内容が表示されない(白字)
        // 80:※内容が表示されない(黒字)
        // 96:※内容が表示されない(黒字)
        // 112:おめでとうございます。%nあなたが参加された競売は最終価格%0アデナの価格で落札されました。
        // 128:あなたが提示された金額よりももっと高い金額を提示した方が現れたため、残念ながら入札に失敗しました。
        // 144:あなたが参加した競売は成功しましたが、現在家を所有できる状態にありません。
        // 160:あなたが所有していた家が最終価格%1アデナで落札されました。
        // 176:あなたが申請なさった競売は、競売期間内に提示した金額以上での支払いを表明した方が現れなかったため、結局取り消されました。
        // 192:あなたが申請なさった競売は、競売期間内に提示した金額以上での支払いを表明した方が現れなかったため、結局取り消されました。
        // 208:あなたの血盟が所有している家は、本領主の領地に帰属しているため、今後利用したいのなら当方に税金を収めなければなりません。
        // 224:あなたは、あなたの家に課せられた税金%0アデナをまだ納めていません。
        // 240:あなたは、結局あなたの家に課された税金%0を納めなかったので、警告どおりにあなたの家に対する所有権を剥奪します。

        public static void writeLetter( int itemObjectId, int code, String sender,
                String receiver, String date, int templateId, byte[] subject,
                byte[] content )
        {/*TTOK*/
            String sqlstr = "INSERT INTO letter SET " +
                            "item_object_id = ?1, " +
                            "code           = ?2, " +
                            "sender         = ?3, " +
                            "receiver       = ?4, " +
                            "date           = ?5, " +
                            "template_id    = ?6, " +
                            "subject        = ?7, " +
                            "content        = ?8";
            using ( MySqlWrapper wrapper = new MySqlWrapper() )
            {
                MySqlCommand cmd = new MySqlCommand( sqlstr );
                cmd.Parameters.Add( "?1", MySqlDbType.Int32 ).Value = itemObjectId;
                cmd.Parameters.Add( "?2", MySqlDbType.Int32 ).Value = code;
                cmd.Parameters.Add( "?3", MySqlDbType.String ).Value = sender;
                cmd.Parameters.Add( "?4", MySqlDbType.String ).Value = receiver;
                cmd.Parameters.Add( "?5", MySqlDbType.String ).Value = date;
                cmd.Parameters.Add( "?6", MySqlDbType.Int32 ).Value = templateId;
                cmd.Parameters.Add( "?7", MySqlDbType.Blob ).Value = subject;
                cmd.Parameters.Add( "?8", MySqlDbType.Blob ).Value = content;
                wrapper.ExecNonQuery( cmd );
            }
        }

        public static void deleteLetter( int itemObjectId )
        {/*TTOK*/
            String sqlstr = "DELETE FROM letter WHERE item_object_id=?1";
            using ( MySqlWrapper wrapper = new MySqlWrapper() )
            {
                MySqlCommand cmd = new MySqlCommand( sqlstr );
                cmd.Parameters.Add( "?1", MySqlDbType.Int32 ).Value = itemObjectId;
                wrapper.ExecNonQuery( cmd );
            }
        }
    }
}
